System and method for generating customized and/or personalized documents

ABSTRACT

A system and method for rapidly customizing and printing documents is disclosed. The system supports product lines having a plurality of customizable products therein, through the use of a single Web page that is continually updated in a data-driven fashion. The system is robust, easily expandable, and quickly deployable across a plurality of user platforms and geographic locations. Methods of the invention disclosed herein enable users to perform customization projects and to print the documents created thereby, either at a remote printer such as at a document factory, or at the user&#39;s own, local printer.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to designing and printing customizeddocuments. More particularly, the present invention relates to acomputer based system and method for customizing a document online andthen printing the document, at either a remote or a local printer.

2. General Background and State of the Art

Computer software for custom document design enables users to design andprint custom-created documents, such as invitations, business cards,posters, and the like. There is wide-spread demand for custom documentdesign software. For example, retailers need custom-printed point-ofsale displays and advertising materials; direct marketers utilizeprinted materials for direct mailings and coupons; promotion firms useprinted materials to announce events; independent business persons andentrepreneurs use printed materials for advertising, and also needcustomized stationary, business cards, and the like.

Until recently, custom document design software was typically residenton a user's personal computer. Software such as the highly-regardedAvery Wizard®, used in Microsoft Word®, and LabelPro® programs allowusers to customize and personalize documents on a personal computer, andthen print the documents at a local printer. While these programs arevery popular and are in wide-spread use, the development of the Internetopens up new possibilities for custom document design. With existingPC-based document customization and personalization software, the usermust take time to install the software on the personal computer. Evenafter the software is loaded onto the personal computer, it must beperiodically upgraded, which takes still further time. Also, changes ina printing company's paper product line cannot be implemented within thelocally installed software, unless the software is upgraded orre-installed. Therefore, maintenance on such software applications istime consuming and, perhaps, not likely to occur. This makes itdifficult for users to maintain consistent access to current paperproduct lines as new paper products are introduced, changed, or added.

There are now a few client-server, network-based custom-printing systemsthat allow a user to access software that is stored on a server, designa document while connected to the server, and then print the documentafter the design has been completed. However, existing network-basedprinting systems do not provide sufficient speed and flexibility. Onecommon approach is to first build a graphical representation of adocument to be printed (or “render” the document image) on the server.Then, the graphical representation is converted into a format such as aPortable Document Format (“PDF”), and the PDF file is transmitted to theclient. The client then renders the image again on the client beforeprinting it on a printer. The process of rendering the image twotimes-first at the server and then at the client—is slow andinefficient. The capacity of the server to serve multiple simultaneoususers is also limited by the need to undertake thecomputationally-intensive task of rendering the graphic on the server.

Another problem with existing network-based systems for designing andprinting customized documents relates to the manner in which the webbrowser communicates with the server. A web browser is a mechanism forhousing software and viewing text and graphics from the Internet. Thebrowser running on the user's computer accepts the data from the userand formats the data into a data stream using HyperText Markup Language(“HTML”). The phrase “data stream,” when used herein, applies equally todata received as if it were an incoming stream and to data that has beenreceived in this manner and stored in a file. HTML is a standardizednotation for displaying text and graphics on a computer display screen,as well as providing more complex information such as animated video andsound.

In addition to the inflexibility of network-based custom-printingsystems as described above, these systems require significant amounts oftime and energy to manage, maintain and upgrade. For example, as aproduct line develops, changes, and expands, network-basedcustom-printing systems operated on websites utilizing HTML documentsmust be continually updated to reflect these changes in the productline. Additionally, changes to the operation of the system may only beimplemented by updating the HTML documents. Further, the number of HTMLdocuments that must be managed can become excessive as the product linegrows. For example, if each available product is represented by an HTMLdocument which is then updated as the user enters changes during acustomization process, the number of HTML documents utilized by thesystem is at least as large as the number of products available withinthe product line. Further, variations on products may require separateHTML documents, thereby multiplying the number of documents that must bemanaged, maintained and updated within such a system. Moreover, thenumber of HTML documents increases as the systems become operable invarious countries, as a separate HTML document for each product must becreated in the native language of each country. These significantmaintenance efforts translate to increased time and cost to operators ofsuch network-based printing systems.

SUMMARY OF THE INVENTION

The present invention relates to an efficient system and method forgenerating customized and/or personalized documents, typically over anetwork having a client and a server.

One embodiment of the present invention is an efficient method forgenerating and printing customized documents in a system having a clientcommunicable with a network and a server communicable with the network.The client user is guided through a series of steps to choose a defaultproject document that is compatible with the user's printable mediaproduct. After a document is selected, an interactive form is displayedon the client. User information is entered onto the interactive form,and is transmitted from the client to the server over the network.Default document parameters are obtained from a template file, which maybe, for example, an XML file, a serialized software object (e.g. aJavaBean™) or a plain text file. A program, operable on the server,generates or updates an HTML page based upon the default documentparameters and the user-defined information. As used herein, the term“updated” is used to describe the building of an HTML page based on userinput data. However, it is to be understood that an updated page is anewly built or re-generated page. The updated HTML page is transmittedto the client and is rendered for the first time at the client.

The method may also include various other features and steps. The stepof obtaining default document parameters from a template file mayinclude parsing the template file for specific tokens that relate to theclient's most recent request. Thus, the template files may be in theform of tagged text data, such as Extensible Markup Language (XML) data.The step of transmitting user-defined information comprises transmittinginformation in Hypertext Markup Language (HTML) code. The userinformation is divided into named fields, and may include a variety ofinformation, such as name, address, telephone number, facsimile number,e-mail address, text message, graphic selection, and/or type of documentto be generated. The user information may also include formattinginformation such as font type, font color, font size, location of texton the document, and/or location of graphics on the document.

Additionally, printable media products may take to form of softwareobjects (such as JavaBeans™), which generate strings of text describingthe media products. The interactive project selection process presentedto the client, therefore, may be presented as a series of transient HTMLpages, readable within a Web browser and dynamically regeneratedaccording to user input and the presence of media product objects anddocument templates on the server. Specifically, the user input causesselection of the product objects, and incorporation of text from thoseobjects within the context of the next generation of the HTML page. Byutilizing software objects, the novel system of the present invention isuniquely data driven. That is, instead of comprising multiple HTML pagesdedicated to hard-coded descriptions of an entire product line, theproduct line is defined by self-contained object files, which areselected by a user's input and merged into a transient HTML page. Thesystem is thus data-driven, according to the user's input, and highlystreamlined. In this manner, a single HTML page design is robust enoughto handle any of a multiplicity of projects desired by a user, accordingto any product within a supported product line. As the product linechanges, the page design does not need to be updated or maintained;rather, new product object files are created, which is a relativelysimpler task.

Of course, it is to be understood that the present invention is notlimited to use with JavaBeans™. Rather, methods and systems of thepresent invention may use any of a number of descriptive files torepresent products within a product line. Such files may be called“project objects,” “product object files” or “SKU object files” andcontain descriptive product data therein. JavaBeans™ are an exemplarydescriptive file type used herein for illustrative purposes only, andshould not be read in a limiting sense.

Furthermore, product object files are fully portable, in that a numberof different Websites, or other systems, may be created to handle andsupport the product object files. In this way, various customizedWebsites may be established for clients, yet they may be driven bystandard, non-customized product objects. Further, product objects maybe “dropped” into any of a number of compatible systems and deployedreadily. This feature of the invention is highly advantageous forportability and efficiency. For example, a Web site in a foreign countrymay be established to handle product objects that already exist for acertain product line as utilized on a domestic country's Web site. Topresent the product line in the foreign country, the product line doesnot need to be re-defined, nor does an entire new system need to bebuilt. Rather, a single Web page capable of receiving the productobjects and displaying the data they contain in the foreign language isprovided, which is a relatively simple task. With the creation of onlyone Web page, and without the re-definition of the entire product line,the entire system is instantly capable of being operated in the languagenative to that foreign country. Systems designed according to thepresent invention are therefore capable of rapid deployment in multipleconfigurations. Absent the data-driven capability provided by theproduct objects, an entire system, comprising multiple Web pages, wouldneed to be created in the foreign language. Therefore, the inventive useof product objects in the customization system that supports an entireproduct line with a single Web page results in a very robust,transportable, and highly efficient method and system for providingcustomizable projects related to a particular product line to users overa computer network.

Methods of the present invention may further include the step ofcreating a printable file and printing the printable file on aclient-controlled printer. The printable file may need to accommodatemechanical characteristics of the particular client-controlled printerin the form of horizontal and vertical page position offsets. Theoffsets are stored for each user for each kind of major paper sizeincluding US Letter and A4 paper sizes. The offset value is selected byan optional alignment procedure the customer may execute from within theprogram after creating any printable file. Thereafter the new offsetvalue is stored and the offset is automatically supplied to everysubsequent printable file generated by the user until the customerelects to modify the offset.

The client-controlled printer can be a standard office printer, such asa laser printer, inkjet printer, or bubblejet printer, or a commercialprinter. Alternatively, the page description file may be transmittedfrom the client to a separate printing facility for printing on acommercial printer.

The printable document file can be a Portable Document Format (PDF)file, a Postscript file or another format known in the art or developedin the future. The client may be a desktop computer, a Personal DigitalAssistant (PDA), or another type of client that can interact with aserver over a network, including a telephone that has a browser. Thenetwork can be an intranet or the Internet, or the means for connectingthe client to the server can be a direct connection without the use of anetwork at all.

In an exemplary embodiment, providers of systems of the presentinvention publish the Web page such that users, through the Web page,post data to a server. The data may include, for example, customizationand personalization data. During the customization process, pre-madeproject files are utilized to collect and organize the data from theuser, as well as to present the data to the user in a visual format, asa print preview. The updated Web page, having the customization andpersonalization data incorporated therein, is then parsed to create aprintable document, which results in a printed version of the user'sprint preview.

Default project files may be generated with a Graphical User Interface(GUI), and stored on the server. A graphical visual representation ofthe project file may be created with the GUI and then saved as an outputdata file. The project files may include default values for at least oneof the following: font type, font color, font size, background color,location of text on the document, location of graphics on the document,size of the document, and/or shape of the document. The project filesmay also be in the form of an XML document.

The method may also include the step of determining mechanicalcharacteristics of a client-controlled printer. The printable file canthen be built for compatibility with the particular client-controlledprinter. The positional accuracy is thereby enhanced. Thus the printablefile can be built to ensure that the document is printed at a particularpage location consistently from printer to printer

In accordance with another aspect of the invention, an efficient methodfor generating customized electronic documents for printing includesreceiving via an online connection an identification of a documenttemplate. A document template defining default attributes of a documentto be printed is then obtained. Document customization information anddocument personalization information is then received, and a set ofinstructions to a page description file builder is generated. Theinstructions instruct the page description file builder to build adocument based upon a combination of the default attributes of thedocument to be printed, the document customization information, and thedocument personalization information. A page description file is builtfrom the set of instructions, and is transmitted to a client forrendering and then printing at a printer. For efficiency, the steps offormulating a set of instructions and building a page description fileare accomplished without first graphically rendering the document, andthe document is graphically rendered for the first time at the client.Also, for ease of use, as document customization information anddocument personalization information is received, such as through aninteractive form displayed in an HTML page, the HTML page is continuallyupdated to reflect incorporation of the received information. Forexample, the HTML page may include a preview image of the customizeddocument, and the preview image may be continually updated toincorporate the effect of each piece of customization andpersonalization information is received by the user.

In another aspect of the invention, a processing server is programmed toreceive information via a network from a user. The information caninclude document customization information and/or documentpersonalization information. The server is also programmed to obtain adocument template that defines default attributes of a document to beprinted, and to formulate a set of instructions to a page descriptionfile builder. The instructions instruct the page description filebuilder to build a document based upon a combination of said defaultattributes of the document to be printed, the document customizationinformation, and the document personalization information. The server isprogrammed to build a page description from the set of instructions withthe page description file builder, and to transmit the page descriptionfile to a recipient. The server is programmed to build the pagedescription file without graphically rendering the document. Theprocessing server may further be programmed to determine characteristicsof a printer onto which the rendered document will be printed, and tocustomize the page description file for the printer as, for example, toassure that the printer prints the rendered document in the properlocation on the sheet.

Another feature of systems according to the present invention is theprovision of unique interfacing with printable document generatingengines for the creation of systems utilized for specialized printableproducts without the use of advanced programming skills. That is,providers utilizing systems of the present invention can create afront-end system component, such as a Web page or interactive form, thateasily interfaces with back-end system components, such as pre-madeproject files, without implementing sophisticated programming. Theprovider will be required only to utilize, for example, HTML to generatethe Web page for the front-end. Higher level programming, such as withJava, C, C++ and the like, are not required of the provider in order forthe provider to design and publish a customized document printing systemaccording to the present invention.

The present invention also extends to particular models of doingbusiness with the technology. Various other aspects, features andembodiments of the invention will become apparent in the followingDetailed Description, in the drawings, and in the Claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates the data-driven nature of an exemplary systemaccording to the present invention.

FIG. 2 illustrates detailed steps of the project selection process of anexemplary data driven system according to the present invention.

FIG. 3 illustrates initial steps of the document customization processof the exemplary system according to the present invention.

FIG. 4 illustrates an iterative document customization process utilizedby the exemplary system according to the present invention.

FIG. 5 illustrates the mechanism for exiting the iterative process ofFIG. 4, as employed by the exemplary system of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following description of the present invention reference is madeto the accompanying drawings which form a part thereof, and in which isshown, by way of illustration, exemplary embodiments illustrating theprinciples of the present invention and how it may be practiced. It isto be understood that other embodiments may be utilized to practice thepresent invention and structural and functional changes may be madethereto without departing from the scope of the present invention.

As used herein, the term “operator” refers to a provider of systems andmethods of the present invention. For example, an operator may be acustomer who accepts systems and methods of the present invention andincorporates them into their commercial Websites. “Users” refer topersons who use the systems and methods of the present invention, suchas through a Web site of an operator providing the systems and methodsthereon. “Personalization” refers to the process of substituting defaultdata or placeholder art with new data or new art to suit the particularneeds of a user, such as entering a name into a “name” field on aninteractive form. “Customization” refers to the process of alteringvalues of data on an interactive form, such as changing font attributes.Other terminology and features relative to systems and methods of thepresent invention will be described herein, where pertinent.

FIG. 1 illustrates the dynamic-page characteristic of an exemplarysystem 100 according to the invention, wherein pages are generateddynamically according to user input and passed between the client andserver in the process of creating an output file defining a printabledocument. FIG. 1 gives an overview of this system; subsystems of system100 are shown in more detail at FIGS. 2-5 (discussed later). “DataSource” step 101 and “Select” step 102 correspond to the more detailedproject selection steps that are illustrated in FIG. 2. The Data Sourcedata 101 represents data stored on the server, i.e. a pool of paperproducts, a pool of projects, and a program that is used to generate thepresentation. Presentations are generated that are sent to the browserat “Select” step 102, in which the user selects which paper product touse and which project to work on, from the dynamic pools. The dynamicpools of products may comprise for example JavaBeans™ descriptive ofproducts within a product line. First the user selects the paperproduct, then based upon the product selected the user is givenappropriate options in order to select the project.

At the “Edit” step 103, an embodiment of which is shown in more detailin FIG. 3, the User personalizes the project data for the selectedproject, element by element, as part of an iterative loop 103, 104, 105,106, 107. The user personalizes an element of the project data, andindicates whether the project personalization is finished or not. If theproject personalization is not finished, a new project presentation isgenerated at the “Update” step 104, an embodiment of which is shown inmore detail at FIG. 4. At this “Update” stage 104 the updated project ispresented to the user again in HTML. The user is then given theopportunity to add another element to the project in the next iterationof “Edit” step 103. This loop is repeated as many times as necessary toallow the user to create personalized projects.

When the user finally indicates that he is finished, an output file isgenerated which is printable at “Output” step 108. A detailed embodimentof this “Output” stage is shown at FIG. 5. The output file may comprise,for example, a PDF file that can be printed from the user's workstationon the paper product selected by the user.

FIG. 2 illustrates three exemplary initial steps executed by anexemplary system of the present invention, and illustrates thedata-driven characteristics of the exemplary system. The exemplarysystem includes or involves a Web user, shown generally at 200, aservlet, shown generally at 202, and server data files, shown generallyat 204. Methods employed by the exemplary system are initiated by Webuser 200, as shown at 206, when Web user 200 activates servlet 202. Thisactivation causes the servlet to read data from the server data files,as indicated at arrow 210. These data may include, for example, softwareobject files, or more particularly JavaBeans™ 212, describing productscontained within a product line and available to the user forcustomization projects.

As used herein, the term “JavaBeans™” is defined to have its ordinarymeaning, as will be easily recognized by those skilled in the art. Intheir particular applications within the context of the presentinvention, JavaBeans™ are software objects that are descriptive ofproducts within a product line. For example, the JavaBeans™ may containspecific SKU information for identifying the product within the productline, and presenting the product to the user. They may also containtemplate family information, which would identify the templatescompatible for each particular product. Templates are default designfiles that are used by a user to customize a product. Therefore, abusiness card JavaBean™ will contain different template familyinformation than a large poster JavaBean™. JavaBeans™ may also containproject XML file information, identifying which project XML files arecompatible with the product. “Project XML files,” as used herein,denotes files that contain project-specific information such as userprompts, fields, and the like, that will be presented to a user duringthe customization process. That is, systems of the present inventionutilize projects for allowing users to customize products, and theprojects are defined within project XML files. Project XML files aretypically designed to be associated with a particular template family,and therefore may be applicable to one or many JavaBeans™. This isbecause each JavaBean™ is assigned to a template family, and a templatefamily may be applicable to a number of different products. Of course,it is to be understood that the present invention is not limited to usewith XML files. XML is merely an exemplary file type used herein forillustrative purposes, and is not intended to be read in a limitingsense.

It will be appreciated by those skilled in the art that systems andmethods of the present invention are not limited to use with JavaBeans™or XML files. Rather, a variety of different software object types maybe used to describe products within the system, and a variety ofdifferent file types may be used to represent projects associated withthe products. The use of JavaBeans™ and XML files herein is forillustrative purposes to describe exemplary embodiments of the presentinvention, but it is to be understood that the invention is not limitedor constrained to use with these specific file types.

Continuing with FIG. 2, and as indicated at block 214, after the userselects a project type, servlet 202 identifies the applicable JavaBeans™212, whose data are read in, indicated at arrow 216. Servlet 202 alsoreads in user interface (UI) files 218, as indicated at arrow 220, whichit uses to reconstruct the HTML page presented to the user. UI files 218are HTML files, and collectively define a single Web page that can beassembled and presented to the user. For example, each UI file mightdescribe a portion of the page, and contain a specific type ofinformation therein. Additionally, a localized UI/configuration file222, which may be either a separate XML file or localized strings withinthe user interface itself, define the manner in which the page is to beconstructed. For example, localized UI file 222 may cause UI files 218to display German text for a Web page displayed on a machine in Germany,and cause the same UI files to 218 display the same text, but inEnglish, for a Web page displayed on a machine in the United States.Ultimately, UI files 218 obtain the data they are to display fromJavaBeans™ 212 selected by server 202 and read in as indicated at arrow216. Servlet 202 uses JavaBeans™ 212, UI files 218 and localizedUI/configuration file 222 to build and present the HTML page to theuser, as the second step of the customization process, indicated atblock 224.

In the second step of the customization process, the user is presentedwith the newly constructed HTML page, which presents choices of productsthat can be utilized with the project type selected in the previousstep, as identified by servlet 202. The user then selects one of theproducts, which prompts servlet 202 to continue to the next step of theprocess, as illustrated at block 226. In response to the user's productselection, servlet 202 reads Project XML files 228, which are XML filesdescribing a customization project suitable for the selected project andaccompanied by a preview image, such as a JPEG or other image, that maybe displayed to the user to aid in the customization process. ProjectXML files 228 may include code for representing such information asfields available for customization, visual features of the selectedproduct available for customization, and the like. Project XML files 228are read by servlet 202, as shown at arrow 230, in the context oflocalized UI/configuration file 222, and servlet 202 then re-constructsthe HTML page to display data contained within Project XML files 228,which is presented to the user as the third step of the customizationprocess, indicated at block 230.

In the third step of the customization project, the updated HTML pagepresents the user with a choice of available projects, and the userselects the desired customization project. Upon the user's selection,the customization project XML, from selected project XML file 228, isinput in servlet 202, indicated at block 232. This process isillustrated in greater detail in FIG. 3.

FIG. 3 illustrates additional detail of an exemplary fourth step of thecustomization process of the exemplary system and method of the presentinvention. The selected project template 228 is read into the programindicated at blocks 300 and 302, which creates a project object 304.Project object 304 may be any standard software object that is known andused in the art. That is, systems and methods of the present inventionwill support any type of software object as project object 304. Amongother components, project object 304 includes algorithms which cangenerate a preview image which is requested by the program as indicatedat block 306. When the HTML page is rendered to the user, this previewimage is displayed, at block 308. Additionally, field data pertinent tothe project and contained within selected project template file 228 isread by the program, as indicated at block 310, which populates the HTMLpage with the field data and displays the HTML page having the fielddata and the preview image to the user. This feature allows systems ofthe present invention to comprise a single Web page capable ofsupporting an entire product line and a hierarchy of project templatefiles 228 applicable to all of the products contained therein. This isbecause the Web page does not have pre-defined fields for data entry bythe user. Rather, such information is stored in project template files212 and the single Web page is dynamically created according to theinformation contained within a user-selected project template file 212.In this manner, systems of the present invention are highly efficient,flexible, expandable, and scalable. This is because as the product linechanges the system is easily upgraded by simply adding new projecttemplate files and new JavaBeans™ or removing outdated combinations ofthese items. Further, only a single Web page need be maintained. Thedynamic creation of the single Web page is also dependent upon localizedUI/configuration project template file 222, as described previously,such that the system is completely portable and will support projecttemplate file 222 in any geographic location.

In other words, the first time the page is displayed, at blocks 308 and310, the field data comprises default data, which may be stored in andretrieved from project XML file 228. A persistent copy of the projectfile is then made, indicated at block 312, and stored to memory forutilization in subsequent calls. The persistent copy is output projectXML file 314. A subsequent call is initiated by user interaction withthe displayed HTML page, such as by entering field data which replacesthe default data. The preview image changes accordingly, and the HTMLpage is re-constructed and re-displayed to the user, to reflect theupdated changes made by the user. In this manner, the process of thefourth step of the exemplary system and method is iterative throughoutthe customization process. This is described in more detail withreference to FIG. 4.

FIG. 4 illustrates the iterative procedure employed by the servlet asthe user enters customization data within the selected project. First,as indicated at block 400, the servlet reads the user's persistentproject file, which was created at block 312 of FIG. 3. As the userenters customization data into the displayed HTML form, indicated atblock 402, the data is read into project object 304, shown at arrow 404,and the project is updated. At block 406, the servlet requests a currentpreview image from project object 304 and saves it to disk as previewimage 410. At block 412, the servlet reads field data from projectobject 304 and sends an updated HTML page 413 to the user. Updated HTMLpage 413 includes localized data from configuration file 222 and previewimage file 410. A persistent copy of the project is made and stored tomemory, replacing the previous persistent copy. The process describedabove repeats until the user has completed the customization process andhas no further customization data to enter. In this manner, the systemis data-driven, such that the preview image is continually rebuilt anddisplayed to the user to reflect the current status of his customizationprocess according to the customization data provided by the user.

FIG. 5 illustrates the process employed by the exemplary system andmethod for exiting the iterative process described above and illustratedin FIG. 4. Specifically, the servlet reads the user's most recentlystored persistent project, at block 500. At block 502, the project isupdated with user data from the HTML form currently displayed andentered into project object 304, as indicated at arrow 504. An externalpresentation or printing process is then launched, as illustrated atblock 506. This process may be, for example, a PDF process, utilizingJava code to generate a PDF output file representing the customizedobject. Alternatively, the process may involve a DHTML process, whichgenerates a DHTML file for printing. A number of printing solutions arepossible and considered to be within the scope of the present invention,which has the objective of supporting the entire customization processwithin a single HTML page that is continually updated in a data-drivenprocess which culminates in the creation of a printable file that theuser is able to print at a remote printer or at the user's own printer.When the user is finished customizing and selects an option to print,such as by clicking on a “print” radio button displayed on the Web page,HTML page 513 is updated a final time, indicated at block 508, anddisplayed to the user. A final project XML file is created at block 510to describe the customized product and to include metrics for reporting,printing and the like. Additionally, and as indicated at block 512, apermanent project XML file may be created and stored to represent theproduct as it was actually printed. This permanent project XML filecreates an archived record of printed customization projects.

An additional feature of systems of the present invention is related tosecurity. Through the design of a single Web page system, that is robustin that its UI files 218 support a plurality of JavaBeans™ 212 and aplurality of platforms and geographies through the direction oflocalized UI/configuration XML file 222, customers may be given theability to provide customized systems to users, with each customizedsystem fully supporting a standardized set of JavaBeans™ 212. To providefor these features, customers may be granted access to UI files 218, forcustomization purposes. Customers may customize portions of UI files218, such as to control the appearance of the HTML page constructedtherefrom and presented to users. Other portions of UI files 218 arestandardized, such that they receive and display data from JavaBeans™212. JavaBeans™ 212, on the other hand, may not be customized or changedby customers. This important security feature enables providers of thesystem to protect proprietary product lines. JavaBeans™ 212 aretypically created by system providers and provided to customers for usewith UI files 218 within systems of the present invention, but are notsusceptible to modifications by customers. System providers may,however, provide proprietary JavaBean™ creation software to customers,enabling them to create JavaBeans™ for products they would like toinclude within a product line to be supported by the system. ThisJavaBean™ creation software may consist of simple code for constructingstrings from user input, or may, for example consist of a spreadsheetalgorithm or other appropriate method for constructing strings that areto be utilized as JavaBeans™. Certain information will be part of theJavaBean™ creation software such that it is always included in thecreated JavaBeans™. Such information might include, for example, atrademark displayed on all products within the product line and,therefore, necessary for any JavaBean™ representative of a producttherein. This security feature is therefore an important feature forproviders of systems of the present invention: product features ofstandard product line products may not be altered by customers, andwhile the systems are robust enough to support customized products, eventhese customized products are assured to include product featuresessential to the system provider. This allows the system provider topreserve the integrity of its products, while at the same time allowingcustomers the latitude to design new products and create associatedJavaBeans™ that may be incorporated within the standard product line.

The foregoing description of exemplary embodiments of the presentinvention have been presented for purposes of enablement, illustration,and description. They are not intended to be exhaustive of or to limitthe present invention to the precise forms discussed. Many modificationsand variations of the present invention are possible in light of theabove teachings. For example, the invention is not limited to use withJavaBeans™; rather, the invention may utilize any descriptive filecontaining product description data. The invention also is not limitedto Project XML files. Rather, a plurality of different file types can beimplemented as project template files, as will be recognized by those ofordinary skill in the art. Moreover, the invention need not beimplemented by or operable via a servlet. A variety of differentprograms may be utilized for implementing systems of the invention inASP, ActiveX, CGI, and the like. Completed customization projects may beprinted either remotely, such as at a factory remote from the user'slocation, or locally, such as at the user's personal printer. Also, thepresent invention is not limited to use across the Internet. Rather, theinvention may be utilized over any computer communications network,including an internal, secure network. Further, although one feature ofthe invention is to enable customization of products without requiring auser to download software for performing the customization, it isanticipated that systems of the present invention may be employed andpracticed on a local machine, without communicating across a network.

1-26. (canceled)
 27. A method of allowing a user to select a printableproduct from a menu of possible products, tailor the chosen productaccording to the user's personal preferences, and view the tailoredproduct on a computer display before the tailored product is created andprinted at a user's workstation, the method allowing for easy updatingand maintaining a selection of printable products available to a userwithout a need to change an executable software application program, themethod comprising: presenting on a computer screen a list of availableprintable, customizable products and receiving from a user in responsethereto a product selection defining a user's selected printableproduct; retrieving product data from at least one non-executable datafile according to the user's product selection; presenting on thecomputer screen a plurality of fields for the user to input producttailoring information, the fields being determined by the product datawithin the non-executable data file; presenting on the computer screen apreview of the user's selected printable product, the product beingcustomized and reflective of the product data retrieved from thenon-executable data file and the product tailoring information input bythe user; generating an output file; and printing a customized documentcorresponding to the customized, printable product on a printer at theuser's workstation; wherein the non-executable data files are selectedfrom the group consisting of binary files, Java Beans™, and XML files;and wherein the computer screen displays a world wide web page.
 28. Themethod of claim 27 wherein the data file further includes defaultproduct tailoring information.
 29. The method of claim 28 wherein thedefault tailoring information contains default graphics.
 30. The methodof claim 28 wherein the default tailoring information contains defaulttext.
 31. The method of claim 27 wherein the available products include:a first group of products, the first group of products all having acommon SKU number but different default tailoring information; and asecond group of products which may include a member of the first groupof products, the second group of products having different SKU numbers.32. A method as defined in claim 27, wherein the product comprises oneof the group constituting invitations, business cards, posters,point-of-sale displays, advertising materials, coupons, eventannouncements, and stationary.
 33. The method of claim 27 wherein thecomputer screen displays simultaneously the plurality of fields and theproduct preview illustrating the product tailored according to theproduct tailoring information input by the user.
 34. The method of claim27 wherein information within the non-executable data file completelycontrols which fields will be presented to the user for tailoring theuser's selected product.
 35. A computer readable media capable ofcausing a general purpose computer to implement the method of claim 27.36. A method of allowing a user to select a customizable, printableproduct from a menu of possible products, tailor the chosen productaccording to the user's personal preferences, and view the tailoredproduct on a computer display before the tailored product is created,the method allowing for easy updating and maintaining a selection ofproducts available to a user without a need to change an executablesoftware application program, the method comprising: presenting on acomputer screen a list of available printable products and receivingfrom a user in response thereto a product selection defining a user'sselected product; retrieving product data from at least onenon-executable data file according to the user's printable productselection; presenting on the computer screen a plurality of fields forthe user to input printable product tailoring information, the fieldsbeing determined by the product data within the non-executable datafile; presenting on the computer screen a preview of the user's selectedprintable product, the product being reflective of product dataretrieved from the non-executable data file and product tailoringinformation input by the user; wherein the data file further includesdefault product tailoring information, the default tailoring informationcontaining at least one of default graphics and default text; andwherein the non-executable data files are selected from the groupconsisting of binary files, Java Beans™, and XML files, and the computerscreen displays a world wide web page, the computer screen displayingsimultaneously the plurality of fields and the product previewillustrating the product tailored according to the product tailoringinformation input by the user.
 37. A method as defined in claim 36,wherein the method further comprises, after the step of presenting onthe computer screen a preview of the user's selected printable product,the step of printing the printable paper product in a printer at auser's workstation.
 38. A method as defined in claim 36, wherein thepaper product comprises one of the group constituting invitations,business cards, posters, point-of-sale displays, advertising materials,coupons, event announcements, labels, and stationary.
 39. A method asdefined in claim 36, wherein the printable product comprises printablepaper.
 40. A method as defined in claim 36, wherein the availableproducts include a first group of products, the first group of productsall having a common SKU number but different default tailoringinformation, and a second group of products which may include a memberof the first group of products, the second group of products havingdifferent SKU numbers.
 41. A method as defined n claim 36, whereininformation within the non-executable data file determines at least onefield to be presented to the user for tailoring the user's selectedprintable product.
 42. A method of allowing a user to select acustomizable, printable product from a menu of possible products, tailorthe chosen product according to the user's personal preferences, andview the tailored product on a computer display before the tailoredproduct is created, the method allowing for easy updating andmaintaining a selection of products available to a user without a needto change an executable software application program, the methodcomprising: presenting on a computer screen a list of availableprintable products and receiving from a user in response thereto aproduct selection defining a user's selected product; retrieving productdata from at least one non-executable data file according to the user'sprintable product selection; presenting on the computer screen aplurality of fields for the user to input printable product tailoringinformation, the fields being determined by the product data within thenon-executable data file; presenting on the computer screen a preview ofthe user's selected printable product, the product being reflective ofproduct data retrieved from the non-executable data file and producttailoring information input by the user; wherein the data file furtherincludes default product tailoring information; wherein thenon-executable data files are selected from the group consisting ofbinary files, Java Beans™, and XML files, and the computer screendisplays a world wide web page, the computer screen displayingsimultaneously the plurality of fields and the product previewillustrating the product tailored according to the product tailoringinformation input by the user; and wherein information within thenon-executable data file controls which fields will be presented to theuser for tailoring the user's selected printable product.
 43. A methodas defined in claim 42, wherein the default tailoring informationincludes at least one of default graphics and default text.
 44. A methodas defined in claim 43, wherein the available products include a firstgroup of products, the first group of products all having a common SKUnumber but different default tailoring information, and a second groupof products which may include a member of the first group of products,the second group of products having different SKU numbers.